package com.dudu.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.dudu.access.RemindUtils;
import com.dudu.bean.AppExtendBean;
import com.dudu.bean.ChargingRuleBean;
import com.dudu.bean.ParamBean;
import com.dudu.bean.PoolAbilityInfoBean;
import com.dudu.bean.PoolAccountRelBean;
import com.dudu.bean.RuleAccountBean;
import com.dudu.bean.UserBean;
import com.dudu.enumeration.OperateTypeEnum;
import com.dudu.enumeration.UserTypeEnum;
import com.dudu.service.IAppExtendService;
import com.dudu.service.ILogService;
import com.dudu.service.IPoolAccountRelService;
import com.dudu.service.IPoolNumberService;
import com.dudu.service.IRuleService;
import com.dudu.service.impl.AppExtendServiceImpl;
import com.dudu.service.impl.LogService;
import com.dudu.service.impl.PoolAccountRelServiceImpl;
import com.dudu.service.impl.PoolNumberServiceImpl;
import com.dudu.service.impl.RuleServiceImpl;
import com.dudu.utils.DictionaryUtils;
import com.dudu.utils.EnumUtility;
import com.dudu.utils.MD5Utils;

import core.CoreService;

/**
 * 应用扩展信息
 * 
 * @author gaoxs appExtend
 */
public class AppController extends CoreService implements IAppController {
    // 当前登陆用户
    private final String KEY_CURRENT_USER = "key_current_user";
    // 当前登陆用户类型
    private final String KEY_CURRENT_USER_TYPE = "key_current_user_type";
    // 用于记录相应接口调用的日志
    private ILogService logService = new LogService();
    // 应用扩展信息相关
    private IAppExtendService appExtendService = new AppExtendServiceImpl();
    // ruleService
    private IRuleService ruleService = new RuleServiceImpl();
    // PoolAccountRelServiceImpl
    private IPoolAccountRelService poolAccountRelService = new PoolAccountRelServiceImpl();
    // PoolNumberServiceImpl
    private IPoolNumberService poolNumberService = new PoolNumberServiceImpl();
    final String importCallMessage = DictionaryUtils.getValueByTypeAndKey("platform", "importCallMessage");
    final String verifyProductAccount = DictionaryUtils.getValueByTypeAndKey("platform", "verifyProductAccount");

    /**
     * 查询全部应用扩展信息相关
     * 
     * @return
     */
    public String queryAll() {
	log.info("AppController.queryAll");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 放在JSONObject里面的数据对象
	JSONArray jsonArray = new JSONArray();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取页面分页用信息
	    int pageSize = Integer.valueOf(this.getRequest().getParameter("size"));
	    int start = Integer.valueOf(this.getRequest().getParameter("start"));
	    int page_no = start / pageSize + 1;
	    // 获取查询参数信息
	    Map<String, String> map = this.convertParam();
	    String isvName = map.get("isvName");
	    String app_name = map.get("app_name");
	    String app_key = map.get("app_key");
	    // 获取所有应用信息
	    JSONObject dataobject = appExtendService.queryAll(page_no, pageSize, isvName, app_name, app_key);
	    object.put("data", dataobject);
	    object.put("flag", "000000");
	    object.put("desc", "success");
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 查询app名称列表(下拉)
     * 
     * @return
     */
    public String getAppName() {
	// 最终返回的结果
	JSONArray jsonArray = new JSONArray();
	// 获取用户类型
	String usertype = (String) this.getRequest().getSession().getAttribute(KEY_CURRENT_USER_TYPE);
	// 获取用户信息
	UserBean currentUser = (UserBean) this.getRequest().getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取所属isv的查询条件
	    String isv_name = EnumUtility.Encoding(this.getRequest().getParameter("isv_name"), "UTF-8");
	    // String
	    // app_name=EnumUtility.Encoding(this.getRequest().getParameter("app_name"),"UTF-8");
	    List<ParamBean> citys = new ArrayList<ParamBean>();
	    // 如果为ISV账号登录，则只查询ISV自己的信息
	    if (EnumUtility.isNotBlank(usertype) && usertype.equals(UserTypeEnum.ISV.getKey())) {
		isv_name = currentUser.getIsv_name();
	    }
	    // 获取所有应用信息
	    JSONObject object = appExtendService.queryAll(1, 32, isv_name, null, null);
	    JSONArray objectArray = object.getJSONArray("items");
	    for (int i = 0; i < objectArray.size(); i++) {
		JSONObject obj = objectArray.getJSONObject(i);
		ParamBean bean = new ParamBean();
		bean.setId(obj.getString("app_name"));
		bean.setText(obj.getString("app_name"));
		citys.add(bean);
	    }
	    if (citys != null) {
		jsonArray = JSONArray.fromObject(citys);
	    }
	}
	return returnData(jsonArray.toString());
    }

    /**
     * 修改或者新增应用扩展信息
     * 
     * @return
     */
    public String doExtendInfo() {
	log.info("AppController.doExtendInfo");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取前台传入的data数据
	    String dataStr = (String) this.getRequest().getParameter("data");
	    // 转化为json对象
	    JSONObject data = JSONObject.fromObject(dataStr);
	    String app_key = data.getString("app_key");// 应用标识
	    String key_private = data.getString("key_private");// 私钥
	    if (EnumUtility.isBlank(key_private)) {
		key_private = MD5Utils.getMd5Value();
	    }
	    String key_public = data.getString("key_public");// 公钥
	    if (EnumUtility.isBlank(key_public)) {
		key_public = MD5Utils.getMd5Value();
	    }
	    String linker_name = data.getString("linker_name");// 联系人姓名
	    String linker_phone = data.getString("linker_phone");// 联系人电话
	    String linker_email = data.getString("linker_email");// 联系人邮箱
	    String is_init_account = data.getString("is_init_account");// 是否使用统一推送地址
	    String is_app_validate = data.getString("is_app_validate");// 是否使用统一验证方式
	    boolean isHasExtend = data.getBoolean("isHasExtend");// 是否已配置
	    String url_callstatus = data.getString("url_callstatus");// 状态推送地址
	    String url_ticket = data.getString("url_ticket");// 话单推送地址
	    String url_authentication = data.getString("url_authentication");// 鉴权地址
	    String url_ivrdigit = data.getString("url_ivrdigit");// IVR结果推送地址
	    String url_record = data.getString("url_record");// 录音文件推动地址
	    String url_notice = data.getString("url_notice");// 通知地址
	    String billing_platform = data.getString("billing_platform");// 计费平台
	    String periphery_code = data.getString("periphery_code");// 外系统编码
	    String url_sms = data.getString("url_sms");// 上行短信推送地址
	    String url_infocontrol = data.getString("url_infocontrol");// 信控审核结果推送地址
	    AppExtendBean bean = new AppExtendBean();
	    if (isHasExtend) {
		// 已配置update
		bean = appExtendService.queryAppExtendByIdentify(app_key);
	    }
	    bean.setApp_key(EnumUtility.trimNumm(app_key));// 应用标识
	    bean.setKey_public(EnumUtility.trimNumm(key_public));// 公钥
	    bean.setKey_private(EnumUtility.trimNumm(key_private));// 私钥
	    bean.setLinker_name(EnumUtility.trimNumm(linker_name));// 联系人姓名
	    bean.setLinker_phone(EnumUtility.trimNumm(linker_phone));// 联系人电话
	    bean.setLinker_email(EnumUtility.trimNumm(linker_email));// 联系人邮箱
	    bean.setIs_init_url(EnumUtility.trimNumm(is_init_account));// 是否使用统一推送地址
	    bean.setIs_init_validate(EnumUtility.trimNumm(is_app_validate));// 是否使用统一验证方式
	    if (EnumUtility.isBlank(url_ticket)) {
		bean.setUrl_ticket(importCallMessage);
	    } else {
		bean.setUrl_ticket(EnumUtility.trimNumm(url_ticket));// 话单推送地址
	    }
	    bean.setUrl_callstatus(EnumUtility.trimNumm(url_callstatus));// 状态推送地址

	    if (EnumUtility.isBlank(url_authentication)) {
		bean.setUrl_authentication(verifyProductAccount);
	    } else {
		bean.setUrl_authentication(EnumUtility.trimNumm(url_authentication));// 鉴权地址
	    }
	    bean.setUrl_ivrdigit(EnumUtility.trimNumm(url_ivrdigit));// IVR结果推送地址
	    bean.setUrl_record(EnumUtility.trimNumm(url_record));// 录音文件推送地址
	    bean.setUrl_notice(EnumUtility.trimNumm(url_notice));
	    bean.setBilling_platform(EnumUtility.trimNumm(billing_platform));// 计费平台
	    bean.setPeriphery_code(EnumUtility.trimNumm(periphery_code));// 外系统编码
	    bean.setUrl_sms(url_sms);// 上行短信推送地址
	    bean.setUrl_infocontrol(url_infocontrol);

	    int appin = -1;
	    if (isHasExtend) {
		// 已配置
		appin = appExtendService.updateAppExtend(bean);// 更新
		// 日志输出信息
		logService.log(OperateTypeEnum.EDIT.getKey(), currentUser.getId(), currentUser.getName(), "t_app_extend", "对应用标识为:" + bean.getApp_key() + "进行修改应用扩展信息url_ticket:"+url_ticket+"url_callstatus:"+url_callstatus+"url_ivrdigit:"+url_ivrdigit);
	    } else {
		bean.setCreate_user(currentUser.getName());
		// 未配置
		appin = appExtendService.insertAppExtend(bean);// 新增
		// 日志输出信息
		logService.log(OperateTypeEnum.ADD.getKey(), currentUser.getId(), currentUser.getName(), "t_app_extend", "对应用标识为:" + bean.getApp_key() + "进行新增应用扩展信息url_ticket:"+url_ticket+"url_callstatus:"+url_callstatus+"url_ivrdigit:"+url_ivrdigit);
	    }
	    if (appin != -1) {
		object.put("flag", "000000");
		object.put("desc", "success");
	    } else {
		object.put("flag", "100000");
	    }
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 获取扩展信息
     * 
     * @return
     */
    public String getExtendInfo() {
	log.info("AppController.getExtendInfo");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    String appkey = this.getRequest().getParameter("app_key");// 获取应用标识
	    // 根据应用标识查询应用扩展信息
	    AppExtendBean bean = appExtendService.queryAppExtendByIdentify(appkey);
	    object.put("flag", "000000");
	    object.put("desc", "success");
	    object.put("bean", bean);
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 查询所有规则信息
     * 
     * @return
     */
    public String queryRuleByAccountId() {
	log.info("AppController.queryRuleByAccountId");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 放在JSONObject里面的数据对象
	    JSONArray jsonArray = new JSONArray();
	    String appkey = this.getRequest().getParameter("app_key");
	    String custAccount = this.getRequest().getParameter("cust_account");
	    // 查询结果
	    List<ChargingRuleBean> list = new ArrayList<ChargingRuleBean>();
	    // 查询规则信息
	    list = ruleService.queryAllRuleByAppCust(appkey, custAccount);

	    // 将查询的数据转化为json格式
	    jsonArray = JSONArray.fromObject(list);
	    JSONObject dataobject = new JSONObject();
	    // 具体数据信息
	    // 一定要加上"totalItemNum"这个参数，否则会在后台无法显示出信息条数，也就无法显示出数据来
	    dataobject.put("totalItemNum", list.size());

	    dataobject.put("items", jsonArray);
	    object.put("data", dataobject);

	    object.put("flag", "000000");
	    object.put("desc", "success");

	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 插入账号-能力规则关系数据，方法中统一， 先根据账号id删除相应对应关系，后进行插入操作 0、应用与账号同时使用此类 1、应用设置时
     * cust_account=-1 2、账号设置时isUpdate=false 3、isUpdate=true时 删除此app_key下的所有能力关系
     * 
     * 
     * @return
     */
    public String doRuleAccouuntInsert() {
	log.info("AppController.doRuleAccouuntInsert");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取传入参数的list使用
	JSONArray jsonArray = new JSONArray();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取前台传入的data数据
	    String dataStr = (String) this.getRequest().getParameter("data");
	    // 从前台获取，判断是否通过应用账号更改所有相对应的组织账户
	    String isUpdate = (String) this.getRequest().getParameter("isUpdate");
	    // 将查询的数据转化为json格式
	    jsonArray = JSONArray.fromObject(dataStr);
	    // 将json转换成RuleAccount类型的list
	    List<RuleAccountBean> jsonList = (List<RuleAccountBean>) JSONArray.toCollection(jsonArray, RuleAccountBean.class);
	    log.info("AppController.doRuleAccouuntInsert---------------" + jsonList.size() + "条数据！");

	    String ruleInTwo = "";
	    if (isUpdate.equals("true")) {
		 //ruleInTwo = ruleService.doDeleteChargingRule(jsonList);//
		// 删除对应的规则
		RemindUtils.remind("OPEN_DELETE_CHARGINGRULE", currentUser.getName() + "进行了一次更新全部规则操作", "sms");
	    }
	    String ruleIn = ruleService.doRuleAccountInsert(jsonList);// 先删除对应的规则,然后插入对应的规则
	    // 日志输出信息
	    logService.log(OperateTypeEnum.ADD.getKey(), currentUser.getId(), currentUser.getName(), "t_rule_account", "是否通过应用账号更改所有相对应的组织账户：" + dataStr + ";是否更新全部:" + isUpdate);

	    if (!ruleIn.equals("-1") && !ruleInTwo.equals("-1")) {
		object.put("flag", "000000");
		object.put("desc", "success");
	    } else {
		object.put("flag", "100000");
	    }
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 删除能力规则关系 1、根据type查询t_charging_rule得到id 2、查询t_charging_rule中parent_id=id
     * 3、根据app_key、cust_account、id删除t_rule_account
     * 
     * @return
     */
    public String deleteRuleAccouunt() {
	log.info("AppController.doRuleAccouuntInsert");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取传入参数的list使用
	JSONArray jsonArray = new JSONArray();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    String type = (String) this.getRequest().getParameter("type");//规则标识
	    String app_key = (String) this.getRequest().getParameter("app_key");// 应用标识
	    String cust_account = (String) this.getRequest().getParameter("cust_account");// 账号标识
	    int i=ruleService.deleteRuleAccouunt(app_key, cust_account, type);
	    logService.log(OperateTypeEnum.DELETE.getKey(), currentUser.getId(), currentUser.getName(), "t_rule_account", "根据app_key：" + app_key+";cust_account:"+cust_account+";type:"+type+"来清空设置" );
	    if (i>-1) {
		object.put("flag", "000000");
		object.put("desc", "success");
	    } else {
		object.put("flag", "100000");
	    }
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 根据账号标识与应用标识做邮件通知，更新该账号下所有rel关系中邮件通知内容
     * 
     * @return
     */
    public String updateEmailSwitchByAccId() {
	log.info("AppController.updateEmailSwitchByAccId");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取前台传入的data数据
	    String type = (String) this.getRequest().getParameter("type");// 判断是邮件通知，还是主动切换号码
	    String app_key = (String) this.getRequest().getParameter("app_key");// 应用标识
	    String cust_account = (String) this.getRequest().getParameter("cust_account");// 账号标识
	    String value = (String) this.getRequest().getParameter("value");// 邮件通知或主动切换号码的值
	    int ret = poolAccountRelService.updateEmailSwitchByAccId(cust_account, app_key, value, type);
	    // 日志输出信息
	    if (type.equals("switchNum")) {
		logService.log(OperateTypeEnum.EDIT.getKey(), currentUser.getId(), currentUser.getName(), "t_pool_account_rel", "根据账号标识与应用标识设置主动切换号码信息" + value);
	    } else {
		logService.log(OperateTypeEnum.EDIT.getKey(), currentUser.getId(), currentUser.getName(), "t_pool_account_rel", "根据账号标识与应用标识设置邮件通知信息" + value);
	    }

	    if (ret != -1) {
		object.put("flag", "000000");
		object.put("desc", "success");
	    } else {
		object.put("flag", "100000");
	    }
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 查询rel表中当前账户的rel关系中第一条数据的email_notice，switch_num值
     * 若为yes，则按钮内容为“取消邮件通知”，“取消主动切换号码”；若为no，则为“邮件通知”，“主动切换号码”；若为none，则不可选择
     * 
     * @return
     */
    @Override
    public String getEmailSwitchByAccoutId() {
	log.info("AppController.getEmailNoticeByAccoutId");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取前台传入的data数据，账号id
	    String cust_account = (String) this.getRequest().getParameter("cust_account");// 账号标识
	    String app_key = (String) this.getRequest().getParameter("app_key");// 应用标识或叫应用KEY
	    JSONObject ret = poolAccountRelService.getEmailSwitchByAccoutId(app_key, cust_account);

	    if (ret != null) {
		object.put("flag", "000000");
		object.put("desc", ret);
	    } else {
		object.put("flag", "100000");
	    }

	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 查询对应的设置(右边显示的号码) 如果这两个dao方法获取的id对应相等，则在前台设置无法选择，其余则设置可以选择；
     * 将这个能否选择的判断信息，放入comment_info中，然后在前台进行判断，设置html
     * 
     * @return
     */
    public String manageAbiByAccId() {
	log.info("AppController.manageAbiByAccId");
	// 获取查询得到的list
	List<PoolAbilityInfoBean> PoolAbilityInfoList = null;
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 放在JSONObject里面的数据对象
	JSONArray jsonArray = new JSONArray();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取前台传入的数据
	    String app_key = (String) this.getRequest().getParameter("app_key");// 应用标识
	    String cust_account = (String) this.getRequest().getParameter("cust_account");// 账号标识
	    if (EnumUtility.isBlank(cust_account)) {
		cust_account = "-1";
	    }
	    String abilityType = (String) this.getRequest().getParameter("abilityType");// 能力类型
	    // 查询数据
	    PoolAbilityInfoList = poolNumberService.manageAbiByAccId(app_key, cust_account, abilityType);
	    // 查询总数量
	    int totalAcount = 0;
	    if (PoolAbilityInfoList != null) {
		totalAcount = PoolAbilityInfoList.size();
	    }
	    // 将查询的数据转化为json格式
	    jsonArray = JSONArray.fromObject(PoolAbilityInfoList);

	    JSONObject dataobject = new JSONObject();
	    // 总数量信息
	    dataobject.put("totalItemNum", totalAcount);
	    // 具体数据信息
	    dataobject.put("items", jsonArray);
	    object.put("data", dataobject);

	    object.put("flag", "000000");
	    object.put("desc", "success");
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 删除账号与号码能力关系
     * 
     * 根据账号id、号码能力表id删除关系表配置信息
     * 
     * @return
     */
    public String deleteByAccAbiId() {
	log.info("AppController.deleteByAccAbiId");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取前台传入的data数据
	    String dataStr = (String) this.getRequest().getParameter("data");
	    // 转化为json对象
	    JSONObject data = JSONObject.fromObject(dataStr);
	    // 获取相应数据
	    String app_key = data.getString("app_key");// 应用标识
	    String cust_account = "-1";
	    if (data.containsKey("cust_account"))
		cust_account = data.getString("cust_account");// 账号标识
	    if (EnumUtility.isBlank(cust_account)) {
		cust_account = "-1";
	    }
	    String abilityId = data.getString("abilityId");// 号码能力表id
	    // 执行数据插入
	    int isOk = poolAccountRelService.deleteByAccAbiId(app_key, cust_account, abilityId);
	    logService.log(OperateTypeEnum.DELETE.getKey(), currentUser.getId(), currentUser.getName(), "t_pool_account_rel", "根据账号app_key:" + app_key + ";cust_account:"
		    + cust_account + ";pool_num_id=" + abilityId + "删除账号与号码能力关系");
	    if (isOk != -1) {
		object.put("flag", "000000");
		object.put("desc", "success");
	    } else {
		object.put("flag", "100000");
	    }
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 插入账号与号码能力关系
     * 
     * 插入账号与号码能力关系信息
     * 
     * @return
     */
    @Override
    public String doInsertAccountRel() {
	log.info("AppController.doInsert");
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);

	if (currentUser != null) {
	    // 获取前台传入的data数据
	    String dataStr = (String) this.getRequest().getParameter("data");
	    // 转化为json对象
	    JSONObject jsonobject = JSONObject.fromObject("{\"passports\":" + dataStr + "}");
	    JSONArray array = jsonobject.getJSONArray("passports");
	    for (int i = 0; i < array.size(); i++) {
		JSONObject objectTemp = (JSONObject) array.get(i);
		PoolAccountRelBean tmpPoolAccountRel = (PoolAccountRelBean) JSONObject.toBean(objectTemp, PoolAccountRelBean.class);
		if (EnumUtility.isBlank(tmpPoolAccountRel.getCust_account())) {
		    tmpPoolAccountRel.setCust_account("-1");
		}
		if (tmpPoolAccountRel != null) {
		    // 创建时间的格式化
		    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		    Calendar cal = Calendar.getInstance();
		    String create_time = sdf.format(cal.getTime());// 创建时间
		    tmpPoolAccountRel.setCreate_time(create_time);
		    if (EnumUtility.isNotBlank(tmpPoolAccountRel.getApp_key()) && EnumUtility.isNotBlank(tmpPoolAccountRel.getCust_account())) {
			// NumberPool实体类

			// 执行数据插入
			int numberPoolIn = poolAccountRelService.doInsert(tmpPoolAccountRel);
			// 日志输出信息
			logService.log(
				OperateTypeEnum.ADD.getKey(),
				currentUser.getId(),
				currentUser.getName(),
				"t_pool_account_rel",
				"t_pool_number手机号码的id：" + tmpPoolAccountRel.getPool_num_id() + "|应用标识：" + tmpPoolAccountRel.getApp_key() + "|账号标识："
					+ tmpPoolAccountRel.getCust_account() + "|号码归属地：" + tmpPoolAccountRel.getNumber_vest() + "|邮件通知：" + tmpPoolAccountRel.getEmail_notice()
					+ "|主动切换号码：" + tmpPoolAccountRel.getSwitch_num() + "|创建时间：" + tmpPoolAccountRel.getCreate_time() + "|修改时间："
					+ tmpPoolAccountRel.getUpdate_time());

			if (numberPoolIn != -1) {
			    object.put("flag", "000000");
			    object.put("desc", "success");
			} else {
			    object.put("flag", "100000");
			}
		    }
		}
	    }

	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

    /**
     * 此方法用来在最左边显示统计个数
     * 
     * 根据账号id查询所有账号与号码能力关系信息，并按照能力类型分别统计个数
     * 
     * @return
     */
    public String getTotalRelByAccoutId() {
	log.info("AppController.getTotalRelByAccoutId");
	// 获取查询得到的list getTotalRelByAccoutId
	List<PoolAccountRelBean> poolAccountRelList = null;
	// 最后返回的对象
	JSONObject object = new JSONObject();
	// 放在JSONObject里面的数据对象
	JSONArray jsonArray = new JSONArray();
	// 获取当前登录用户信息
	UserBean currentUser = (UserBean) this.getSession().getAttribute(KEY_CURRENT_USER);
	// 判断如果用户信息不为空则继续下一步
	if (currentUser != null) {
	    // 获取账号id
	    String app_key = (String) this.getRequest().getParameter("app_key");// 应用标识
	    String cust_account = (String) this.getRequest().getParameter("cust_accout");// 账号标识
	    if (EnumUtility.isBlank(cust_account)) {
		cust_account = "-1";
	    }
	    // 查询数据
	    poolAccountRelList = poolAccountRelService.getTotalRelByAccoutId(app_key, cust_account);
	    // 将查询的数据转化为json格式
	    jsonArray = JSONArray.fromObject(poolAccountRelList);

	    JSONObject dataobject = new JSONObject();
	    // 具体数据信息
	    dataobject.put("items", jsonArray);
	    object.put("data", dataobject);

	    object.put("flag", "000000");
	    object.put("desc", "success");
	} else {
	    object.put("flag", "100000");
	}
	return returnData(object.toString());
    }

}
